The Multicore Association, founded in 2005, is a member-funded, non-profit, industry consortium focused on the creation of open standard APIs, specifications, and guidelines that will allow system developers and programmers to adopt multicore technology into their applications more readily .
The consortium provides a neutral forum for vendors and developers who are interested in, working with, and/or proliferating multicore-related products, including processors, infrastructure, devices, software, and applications. Its members represent vendors of processors, operating systems, compilers, development tools, debuggers, ESL/EDA tools, and simulators; and application and system developers.
The consortium’s president is Markus Levy, who is also president of EEMBC, the Embedded Microprocessor Benchmark Consortium.
In 2008, the Multicore Communications API working group released the consortium's first specification, referred to as MCAPI. MCAPI™ is a message-passing API that captures the basic elements of communication and synchronization that are required for closely distributed (multiple cores on a chip and/or chips on a circuit board) embedded systems. The target systems for MCAPI™ span multiple dimensions of heterogeneity (e.g., core heterogeneity, interconnect fabric heterogeneity, memory heterogeneity, operating system heterogeneity, software toolchain heterogeneity, and programming language heterogeneity).
In 2011, the MCAPI working group released MCAPI 2.0. The enhanced version adds new features, such as domains for routing purposes. MCAPI Version 2.0 adds a level of hierarchy into that network of nodes through the introduction of “domains.” Domains can be used in a variety of implementation-specific ways, such as for representing all the cores on a given chip or for dividing a topology into public and secure areas. MCAPI 2.0 also adds three new types of initialization parameters (node attributes, implementation-specific configurations, implementation information such as the initial network topology or the MCAPI version being executed). The MCAPI WG is chaired by Sven Brehmer.
In 2011, the Multicore Resource Management API working group released its first specification, referred to as MRAPI. MRAPI is an industry-standard API that specifies essential application-level resource management capabilities. Multicore applications require this API to allow coordinated concurrent access to system resources in situations where: (1) there are not enough resources to dedicate to individual tasks or processers, and/or (2) the Run_time_(program_lifecycle_phase) system does not provide a uniformly accessible mechanism for coordinating resource sharing. This API is applicable to both SMP and AMP embedded multicore implementations (whereby AMP refers to heterogeneous both in terms of software and hardware). MRAPI (in conjunction with other Multicore Association APIs) can serve as a valuable tool for implementing applications, as well as for implementing such full-featured resource managers and other types of layered services. The MRAPI WG was chaired by Jim Holt.